The recent advent of electronic word processing has created an increased need for automated searching of words and phrases in electronic databases. Search engines like Google, for example, operate on short phrases or individual words that are input by an operator. The search engine then searches one or more databases looking for words or phrases similar to the query. The results of the search query are then displayed to an operator.
There are some prior art techniques used in search engines that allow for some ambiguity of the query words. This provides a tolerance for misspellings and other errors that often cause the search engine to return with no results or irrelevant results. These types of techniques are commonly referred to as “fuzzy” searches.
Fuzzy searches generally take longer to complete than exact searches as the searching algorithms must consider many more combinations of letters while searching the database. The list resulting from a fuzzy search tends to be more time consuming for an operator to consider as more results are typically provided.
Furthermore, fuzzy searches may also operate on phonetic spellings and predetermined groups of characters, which also increase the database searching times, while rendering the searching techniques to be limited to a specific language.
In English for example, a “ph” is commonly pronounced as an “f”, so fuzzy searching algorithms written for an English database, may replace “ph” for “f” (and vice versa) when comparing the queried word to the possible candidate words in the database. Fuzzy searches in a Spanish or German database where a “ph” is replaced with an “f” (and vice versa) would yield inappropriate results, while further adding to the searching time.
Searching for names within a database of employee information has also become a common task. For example, FIG. 1 shows a screen shot 10 using a system for searching employee names. By “screen shot” it is meant that an image displayed on a screen of a computer or the like at a particular point in time is reproduced as a figure. In this type of system, the first and last name are entered in two separate fields 12 and 14. The searching algorithms employed in this exemplary system may be similar to those contained in Internet searching engines.
For example, to search for the employee “Jim Meyer”, a prior art search query may be First Name “?im”, Last Name “Me?er”. Again this type of fuzzy searching allows for name misspellings and other related errors, that might cause the search engine to return with no or erroneous results. Furthermore, this type of engine searches the database for the first name and last name as separate words. By searching the names as separate words, a quick list of results is obtained, however the results list tend to be lengthy and inaccurate.
There are many research papers on searching for proper names in databases as the best method for doing this remains an open question, see for example the World Wide Web address of “codeproject.com/string/dmetaphone6.asp” and the Internet address of “citesser.ist.psu.edu/10419.html.” Current prior art search engine techniques for searching for names have substantial drawbacks. Further, these current and limited searching techniques are not found in email, workflow and groupware applications.